# Dockerfile for Vue 3 Frontend (Multi-stage build)

# --- STAGE 1: Build ---
FROM node:22-alpine AS build

# 设置工作目录
WORKDIR /app

# 复制 package.json 和 package-lock.json (或 yarn.lock)
COPY package*.json ./

# 安装依赖（使用 npm 或 yarn，根据您的项目）
RUN npm install

# 复制所有源代码
COPY . .

# 执行 Vue 构建命令（生成 dist 目录）
RUN npm run build --registry=https://registry.npmmirror.com

# --- STAGE 2: Serve ---
FROM nginx:stable-alpine

# 从构建阶段复制 dist 目录到 Nginx 的静态文件目录
COPY --from=build /app/dist /usr/share/nginx/html

# 复制自定义 Nginx 配置（处理 SPA 路由）
COPY nginx.conf /etc/nginx/conf.d/default.conf

# 暴露 80 端口
EXPOSE 80
